Machine vision is used commonly to inspect manufactured objects, parts, printing and other physical items for visible flaws and defects. A variety of systems have been developed to perform such inspection, many of which contain a variety of advanced flaw-detection features and tools. One advanced inspection system is available under the Insight® product line from Cognex Corporation of Natick, Mass. Such systems can be trained with a model image of a desired part appearance, and employ advanced pattern recognition tools to compare the stored model image to the runtime image being inspected.
Two advanced software application are sold under the names PatMax® and Intellect®, and are also available from Cognex Corporation. This application uses advanced techniques to register a runtime image with respect the trained image (if possible) even if the viewing angle is skewed, the part is rotated and the scale differs with respect to the training image. PatMax®, Intellect®, and other competing software applications, also allow the user to employ a variety of tools to aid in edge detection and other image-analysis processes.
One drawback with existing inspection tools is that it is often difficult for such tools to differentiate between acceptable process variations between parts and actual flaws in those parts that may render them defective or otherwise unacceptable. For example, most parts may contain indicia or markings that need not be very accurately placed, but which are nonetheless required. Likewise, certain non-critical surfaces may contain molding defects, or mouse bites. The user may be motivated to lower the overall sensitivity of the system so that it affords greater leeway to the placement and appearance of such markings or minor imperfections. However, simply detuning the detection criteria (i.e. lowering the system's sensitivity) may cause the system to miss critical flaws or defects, such as cracks in ear teeth, etc.
In addition, there are other reasons that a runtime image of an object may not match that of the trained images, these can include differences in scale, angle of view and illumination between the trained and runtime image. Some of these translate into perspective distortion, registration errors and non-rigid transformation of object features. While current machine vision tools can accommodate some of these differences, others may lead to false detection of flaws. For example, a hole viewed at an angle may reveal part of the inner wall of the hole, rendering the resulting appearance of the hole as an out-of-round, or off-center.
Accordingly, it is desirable to provide a mechanism by which the user can flexibly inspect for flaws on objects that allows differentiation between non-critical process variations or other runtime versus training image differences and critical flaws or defects.